The present invention covers a broad field of usage. The basic concepts of it can be applied successfully for solving problems in managing concurrent requests for resources the utilization of which (up to a specified degree) has an impact to the degree of availability of other resources. An example is the interdependency between resources shared between a plurality of requesters. Further, many problems can be solved which are involved with computer environments, in particular, in a situation in which a plurality of resource requirements are demanded to be satisfied by a single institution, i.e., the system manager, and when the work done for satisfying said requirements is quite complex. The complexity may be based on a plurality of different reasons, for example, the satisfaction of one requirement may influence one or more other requirements and give raise to changes in quality or quantity criteria. Alternatively, the difficulty to perform a so-called UNDO, i.e., to recover the state which prevailed before some requirements were satisfied, may be the source of the complexity.
An example of potential usage is thus a queue management in which the access to resources shall be managed in a way in which the enqueuing processes are served in an optimized way, especially, when the completion of one process is required for another process to be worked with.
A particular area of usage, however, is the configuration and/or customization of software programs. Included in this term of software is explicitly any kind of software, i.e., application, middleware and operating system programs. This area of usage—and in particular application programs—is used in here for discussing prior art and its associated disadvantages.
Often, one hardware system, as e.g., a personal computer, a workstation or especially a mainframe computer is designed and intended to host more than one business application program. Generally, logical or physical system resources, like e.g., User IDs, TCP/IP addresses, or different peripheral devices like printers, plotters, etc., are used by those programs in a shared way. Thus, in general, such programs have to be customized, i.e., adapted to the situation prevailing at the end-user site. This requires that one perform a setting of system variables which are used by the operating system of the computer in use, as well. Different application programs, however, may require different settings of system variables. Dependent of the type of system variable involved, a wrong setting may corrupt proper operation of the underlying computer hardware, and can thus finally cause program aborts which are detrimental to an undisturbed business operation.
Dependent on the type of hardware in use, the number of system variables may range from about one hundred for a PC having an up-to-date operating system to several hundred thousand defined in the system environment of a clustered mainframe computer system. Thus, some complexity can be caused solely by the number of system variables.
In prior art mainframe computers an automatic customization of e.g., IBM OS/390, products is not available. Thus, System Administrators have to customize products manually—sometimes with the help of specific utilities—which nevertheless requires detailed know-how about essential parts of the operating system and about so-called middleware products which normally form some kind of intermediate layer between the operating system and one or more application programs. The above-mentioned interdependencies between particular settings of system variables may become very complex and the way to keep the overview on the problems involved is individual—dependent on the system administrator. The task of configuring and/or customizing application programs is thus very difficult.
For other platforms like Windows98* or Windows NT* (*trademarks of Microsoft Corp.), there are script-driven customization steps (e.g., the InstallShield). These scripts are provided in order to prevent the end-user from doing things manually. The scripts are provided with the application program in order to customize computer resources in a manner so that these programs can be started and used successfully.
The disadvantage of this approach is that all the steps executed in a script have to be programmed by the application programmer and require much knowledge about the details of the operating system. The process of bundling them into one script also restricts reliability and usability, especially in case of failure, because of missing granularity.
It is thus an objective of the present invention to provide a method and system with which a plurality of concurrent resource requirements all targeting the same administration unit can be managed in an improved way, for example with a reduced participation of a system administrator.
It is a further objective to provide such method and system for an automated configuration an/or customization of application programs.